home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 43 / Amiga Format CD43 (1999)(Future Publishing)(GB)(Track 1 of 2)[!][issue 1999-09].iso / -serious- / comms / other / ums / rexx / writemessage.rexx < prev   
OS/2 REXX Batch file  |  1999-06-14  |  3KB  |  128 lines

  1. /* ------------------------------------------------------------------------
  2.    :Program.    WriteMessage.rexx
  3.    :Contents.   writes a new message to UMS' messagebase
  4.    :Author.     Kai Bolay [kai]
  5.    :Address.    Hoffmannstraße 168
  6.    :Address.    D-71229 Leonberg      
  7.    :EMail.      kai@studbox.uni-stuttgart.de
  8.    :Version.    $VER: WriteMessage.rexx 2.3 (11.11.95)
  9.    :Copyright.  Public Domain
  10.    :Language.   ARexx
  11.    :Translator. RexxMast
  12.    
  13. $Id: WriteMessage.rexx 2.3 1995/11/11 12:09:01 kai Exp $   
  14. $Log: WriteMessage.rexx $
  15. # Revision 2.3  1995/11/11  12:09:01  kai
  16. # started RCS. Old history:
  17. # v1.0 [kai] 23-Sep-93
  18. # v1.1 [hG]  16-Jan-94 added argument passing
  19. # v1.2 [hG]  23-Jan-94 uses UMSInit.rexx 1.1 and
  20. #                      hgRexxSupport.library
  21. # v2.0 [kai] 21-Dec-94 adapted to UMS v11
  22. # v2.1 [kai] 13-May-95 added support for FILE
  23. # v2.2 [kai] 04-Oct-95 beautified
  24. # v2.3 [kai] 11-Nov-95  adapted to newest standard
  25. #
  26.  
  27. ------------------------------------------------------------------------ */
  28.  
  29. options results
  30.  
  31. signal on BREAK_C
  32. signal on BREAK_D
  33. signal on BREAK_E
  34. signal on BREAK_F
  35. signal on ERROR
  36. signal on HALT
  37. signal on IOERR
  38. signal on SYNTAX
  39.  
  40. /*** Init ***/
  41.  
  42. call addlib("rexxdossupport.library", 0, -30)
  43. call addlib("ums.library", 0, -210, 11)
  44. call UMSInitConsts()
  45.  
  46. /*** Arguments ***/
  47.  
  48. parse SOURCE . " " . " " ProgramName .
  49. ArgsTemplate = "NAME/A,PASSWORD,SERVER/K,TONAME/A,TOADDR,SUBJECT,FILE/A";
  50. args.SERVER = ""
  51. args.PASSWORD = ""
  52. args.TOADDR = ""
  53. args.SUBJECT = "no subject"
  54.  
  55. parse arg arguments
  56. if strip(arguments) = '?' then do
  57.   call writech(STDOUT, ArgsTemplate || ': ')
  58.   arguments = readln(STDIN)
  59. end; else nop
  60. if ~ReadArgs(arguments,ArgsTemplate,"args.") then do
  61.   say Fault(RC, ProgramName)
  62.   exit 10
  63. end; else nop
  64.  
  65. /*** Login ***/
  66.  
  67. account = UMSLogin(args.name, args.password, args.server)
  68. if account = 0 then do
  69.   say "unable to login."
  70.   exit 10
  71. end
  72.  
  73. /*** Do the magic ***/
  74.  
  75. drop msg.
  76. msg.UMSCODE_MsgText_FILE = args.file
  77. msg.UMSCODE_ToName       = args.toname
  78. msg.UMSCODE_ToAddr       = args.toaddr
  79. msg.UMSCODE_Subject      = args.subject
  80. msg.UMSCODE_ReplyName    = "root"
  81.  
  82. num = UMSWriteMsg(account, msg.)
  83. if num = 0 then do
  84.   call CheckErr
  85.   RC = 20; call LOGOUT
  86. end; else do
  87.   say "The new message got #" || num
  88. end
  89.  
  90. /*** Final cleanup ***/
  91.  
  92. BREAK_C:
  93. BREAK_D:
  94. BREAK_E:
  95. BREAK_F:
  96.  
  97. RC = 0
  98.  
  99. ERROR:
  100. HALT:
  101. IOERR:
  102. SYNTAX:
  103.  
  104. IF RC ~= 0 THEN DO
  105.   SAY "Error: " rc errortext(rc) "Line" sigl
  106.   RC = 20
  107. END
  108.  
  109. /*** Logout ***/
  110.  
  111. LOGOUT:
  112.  
  113. if account ~= 0 then do
  114.   call UMSLogout(account)
  115.   account = 0
  116. end
  117.  
  118. exit RC
  119.  
  120. /*** Support ***/
  121.  
  122. CheckErr: procedure expose account
  123.   err = UMSErrNum(account)
  124.   if err ~= 0 then do
  125.     say "UMS Error #" || err || ": " || UMSErrTxt(account)
  126.   end
  127. return
  128.